package data;

import java.sql.*;
import java.util.*;
import utils.Transacao;

public class MedicamentoData {

  public void incluir(MedicamentoDO medicamento, Transacao tr) throws Exception {
     Connection con = tr.obterConexao();
     String sql = "insert into Medicamento (Nome, QuantidadeEstoque, Preco) values (?, ?, ?)";
     PreparedStatement ps = con.prepareStatement(sql);
     ps.setString(1, medicamento.getNome());
     ps.setString(2, medicamento.getQuantidadeEstoque());
     ps.setString(3, medicamento.getPreco());
     int result = ps.executeUpdate();
  }

  public void excluir(MedicamentoDO medicamento, Transacao tr) throws Exception {
     excluir(medicamento.getIdMedicamento(), tr);
  } // excluir

  public void excluir (int idMedicamento, Transacao tr) throws Exception {
     Connection con = tr.obterConexao();
     String sql = "delete from Medicamento where idMedicamento=?";
     PreparedStatement ps = con.prepareStatement(sql);
     //ps.setString(1, "qwerty");
     //ps.setString(2, "ert");
     ps.setInt(1, idMedicamento);
     int result = ps.executeUpdate();
  } // excluir 

  public void atualizar(MedicamentoDO medicamento, Transacao tr) throws Exception {
     Connection con = tr.obterConexao();
     String sql = "update idMedicamento set Nome=?, QuantidadeEstoque=?, Preco=? where idMedicamento=?";
     PreparedStatement ps = con.prepareStatement(sql);
     ps.setString(1, medicamento.getNome());
     ps.setString(2, medicamento.getQuantidadeEstoque());
     ps.setString(3, medicamento.getPreco());
     ps.setInt(4, medicamento.getIdMedicamento());
     int result = ps.executeUpdate();
  } // atualizar

  public MedicamentoDO buscar(int idMedicamento, Transacao tr) throws Exception {
     Connection con = tr.obterConexao();
     String sql = "select * from Medicamento where  idMedicamento=?";
     PreparedStatement ps = con.prepareStatement(sql);
     ps.setInt(1, idMedicamento);
     ResultSet rs = ps.executeQuery();
     rs.next();
     MedicamentoDO medicamento = new MedicamentoDO();
     medicamento.setIdMedicamento (rs.getInt("idMedicamento"));
     medicamento.setNome (rs.getString("Nome"));
     medicamento.setQuantidadeEstoque (rs.getString("QuantidadeEstoque"));
     medicamento.setPreco(rs.getString("Preco"));
     return medicamento;
  } // buscar

  public Vector pesquisarPorNome(String Nome, Transacao tr) throws Exception {
     Connection con = tr.obterConexao();
     String sql = "select * from Medicamento where Nome like ?";
     PreparedStatement ps = con.prepareStatement(sql);
     ps.setString(1, Nome);
     ResultSet rs = ps.executeQuery();
     System.out.println("query executada");
     Vector medicamentos = new Vector();
     while (rs.next()) {
        MedicamentoDO m = new MedicamentoDO();
        m.setIdMedicamento (rs.getInt("idMedicamento"));
        m.setNome (rs.getString("Nome"));
        System.out.println(" got " + m.getNome());
        m.setQuantidadeEstoque(rs.getString("QuantidadeEstoque"));
        m.setPreco(rs.getString("Preco"));
        medicamentos.add(m);
     }
     return medicamentos;
  } // pesquisarPorNome

} // MedicamentoData